
const Hero = require('Hero');
cc.Class({
    extends: cc.Component,

    properties: {
        rocker:{
            default:null,
            type:cc.Node
        },
        rocker_bg:{
            default:null,
            type:cc.Node
        },
        hero:{
            default:null,
            type:Hero,
        },
        weapon:{
            default:[],
            type:[cc.Prefab],
        },
        bg:{
            default:null,
            type:cc.Node
        }
    },        
    // use this for initialization
    onLoad: function () {
        cc.director.getPhysicsManager().enabled = true;
        // 初始化武器
        let new_gun=cc.instantiate(this.weapon[0]);
        new_gun.parent = this.bg;
        new_gun.x=100;
        new_gun.y=100;
        let new_gun1=cc.instantiate(this.weapon[1]);
        new_gun1.parent = this.bg;
        new_gun1.x=100;
        new_gun1.y=50;
        /**************  简单的摇杆  **************/
        // 点击任意位置  摇杆跟随
        this.node.on('touchstart',function(event){
            this.rocker.setPosition(event.getLocation());
            this.rocker_bg.setPosition(event.getLocation());
        },this);
        // 摇杆移动 不超过摇杆背景
        this.node.on('touchmove',function(event){
            // 摇杆半径
            var rocker_bg_r=this.rocker_bg.width/2;
            // 鼠标移动的点
            var _point=event.getLocation();
            // 圆心
            var _center=this.rocker_bg.getPosition ();
            // 触发点到圆心的距离
            var angle = Math.atan((_point.y-_center.y)/(_point.x-_center.x));
            //console.log();
            var vectorX,vectorY;
            if(_point.x>=_center.x){
                // 上半圆
                var _x,_y;
                _x=_center.x+rocker_bg_r*Math.cos(angle);
                _y=_center.y+rocker_bg_r*Math.sin(angle);
                this.rocker.setPosition(cc.p(_x,_y));
                vectorX=Math.cos(angle);
                vectorY=Math.sin(angle);
            }else{
                // 下半圆
                var _x,_y;
                _x=_center.x-rocker_bg_r*Math.cos(angle);
                _y=_center.y-rocker_bg_r*Math.sin(angle);
                this.rocker.setPosition(cc.p(_x,_y));
                vectorX=Math.cos(angle)*-1;
                vectorY=Math.sin(angle)*-1;
            }
            // todo 绑定hero
            this.hero.setDirection(vectorX,vectorY);
            this.hero.setGunDirection(vectorX,vectorY);
        },this);
        // 摇杆停止移动时回到原位
        this.node.on('touchend',function(event){
            this.rocker.setPosition(this.rocker_bg.getPosition());
            this.hero.setDirection(0,0);
        },this);
        /**************  简单的摇杆  **************/
    },

    // 执行捡起
    doPick:function(){
        this.hero.pickGun();
    },
    doSwitch:function(){
        this.hero.switchGun();
    },

    // called every frame
    update: function (dt) {

    },
});
